#include "wavefilt.h"

int filtlength(char* name) {
	if (!strcmp(name,"haar") || !strcmp(name,"db1")) {
		return 2;
	}
	else if (!strcmp(name,"db2")){
		return 4;
	}
	else if (!strcmp(name,"db3")){
		return 6;
	}
	else if (!strcmp(name,"db4")){
		return 8;
	}
	else if (!strcmp(name,"db5")){
		return 10;
	}
	else if (!strcmp(name,"db6")){
		return 12;
	}
	else if (!strcmp(name,"db7")){
		return 14;
	}
	else if (!strcmp(name,"db8")){
		return 16;
	}
	else if (!strcmp(name,"db9")){
		return 18;
	}

	else if (!strcmp(name,"db10")){
		return 20;
	}

	else if (!strcmp(name,"db12")){
		return 24;
	}
	else if (!strcmp(name,"db13")){
		return 26;
	}

	else if (!strcmp(name,"db11")){
		return 22;
	}

	else if (!strcmp(name,"db14")){
		return 28;
	}
	else if (!strcmp(name,"db15")){
		return 30;
	}
	else if (!strcmp(name,"bior1.1")){
		return 2;
	}

	else if (!strcmp(name,"bior1.3")){
		return 6;
	}

	else if (!strcmp(name,"bior1.5")){
		return 10;
	}

	else if (!strcmp(name,"bior2.2")){
		return 6;
	}

	else if (!strcmp(name,"bior2.4")){
		return 10;
	}

	else if (!strcmp(name,"bior2.6")){
		return 14;
	}
	else if (!strcmp(name,"bior2.8")){
		return 18;
	}

	else if (!strcmp(name,"bior3.1")){
		return 8;
	}
	else if (!strcmp(name,"bior3.5")){
		return 12;
	}

	else if (!strcmp(name,"bior3.7")){
		return 16;
	}
	else if (!strcmp(name,"bior3.9")){
		return 20;
	}
	else if (!strcmp(name,"bior4.4")){
		return 10;
	}
	else if (!strcmp(name,"bior5.5")){
		return 12;
	}
	else if (!strcmp(name,"bior6.8")){
		return 18;
	}

	else if (!strcmp(name,"coif1")){
		return 6;
	}
	else if (!strcmp(name,"coif2")){
		return 12;
	}
	else if (!strcmp(name,"coif3")){
		return 18;
	}
	else if (!strcmp(name,"coif4")){
		return 24;
	}
	else if (!strcmp(name,"coif5")){
		return 30;
	}

	else if (!strcmp(name,"sym2")){
		return 4;
	}

	else if (!strcmp(name,"sym3")){
		return 6;
	}

	else if (!strcmp(name,"sym4")){
		return 8;
	}

	else if (!strcmp(name,"sym5")){
		return 10;
	}

	else if (!strcmp(name,"sym6")){
		return 12;
	}

	else if (!strcmp(name,"sym7")){
		return 14;
	}

	else if (!strcmp(name,"sym8")){
		return 16;
	}

	else if (!strcmp(name,"sym9")){
		return 18;
	}

	else if (!strcmp(name,"sym10")){
		return 20;
	}
	else {
		printf("\n Filter Not in Database \n");
		return -1;
	}

	return 0;
}

int filtcoef(char* name, double *lp1, double *hp1, double *lp2, double *hp2) {
	int i;
	if (!strcmp(name,"haar") || !strcmp(name,"db1")) {
		double lp1_a[] = { 0.7071, 0.7071 };
		double hp1_a[] = { -0.7071, 0.7071 };
		double lp2_a[] = { 0.7071, 0.7071 };
		double hp2_a[] = { 0.7071, -0.7071 };
		for (i = 0; i < 2; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 2;
	}
	else if (!strcmp(name,"db2")){
		double lp1_a[] = { -0.12940952255092145, 0.22414386804185735, 0.83651630373746899,
			0.48296291314469025 };

		double hp1_a[] = { -0.48296291314469025, 0.83651630373746899, -0.22414386804185735,
			-0.12940952255092145 };

		double lp2_a[] = { 0.48296291314469025, 0.83651630373746899, 0.22414386804185735,
			-0.12940952255092145 };

		double hp2_a[] = { -0.12940952255092145, -0.22414386804185735, 0.83651630373746899,
			-0.48296291314469025 };
		for (i = 0; i < 4; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 4;
	}
	else if (!strcmp(name,"db3")){
		double lp1_a[] = { 0.035226291882100656, -0.085441273882241486, -0.13501102001039084,
			0.45987750211933132, 0.80689150931333875, 0.33267055295095688 };

		double hp1_a[] = { -0.33267055295095688, 0.80689150931333875, -0.45987750211933132,
			-0.13501102001039084, 0.085441273882241486, 0.035226291882100656 };

		double lp2_a[] = { 0.33267055295095688, 0.80689150931333875, 0.45987750211933132,
			-0.13501102001039084, -0.085441273882241486, 0.035226291882100656 };

		double hp2_a[] = { 0.035226291882100656, 0.085441273882241486, -0.13501102001039084,
			-0.45987750211933132, 0.80689150931333875, -0.33267055295095688 };
		for (i = 0; i < 6; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 6;
	}
	else if (!strcmp(name,"db4")){
		double lp1_a[] = { -0.010597401784997278, 0.032883011666982945, 0.030841381835986965,
			-0.18703481171888114, -0.027983769416983849, 0.63088076792959036,
			0.71484657055254153, 0.23037781330885523 };

		double hp1_a[] = { -0.23037781330885523, 0.71484657055254153, -0.63088076792959036,
			-0.027983769416983849, 0.18703481171888114, 0.030841381835986965,
			-0.032883011666982945, -0.010597401784997278 };

		double lp2_a[] = { 0.23037781330885523, 0.71484657055254153, 0.63088076792959036,
			-0.027983769416983849, -0.18703481171888114, 0.030841381835986965,
			0.032883011666982945, -0.010597401784997278 };

		double hp2_a[] = { -0.010597401784997278, -0.032883011666982945, 0.030841381835986965,
			0.18703481171888114, -0.027983769416983849, -0.63088076792959036,
			0.71484657055254153, -0.23037781330885523 };
		for (i = 0; i < 8; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 8;
	}
	else if (!strcmp(name,"db5")){
		double lp1_a[] = { 0.0033357252850015492, -0.012580751999015526, -0.0062414902130117052,
			0.077571493840065148, -0.03224486958502952, -0.24229488706619015,
			0.13842814590110342, 0.72430852843857441, 0.60382926979747287,
			0.16010239797412501 };

		double hp1_a[] = { -0.16010239797412501, 0.60382926979747287, -0.72430852843857441,
			0.13842814590110342, 0.24229488706619015, -0.03224486958502952,
			-0.077571493840065148, -0.0062414902130117052, 0.012580751999015526,
			0.0033357252850015492 };

		double lp2_a[] = { 0.16010239797412501, 0.60382926979747287, 0.72430852843857441,
			0.13842814590110342, -0.24229488706619015, -0.03224486958502952,
			0.077571493840065148, -0.0062414902130117052, -0.012580751999015526,
			0.0033357252850015492 };

		double hp2_a[] = { 0.0033357252850015492, 0.012580751999015526, -0.0062414902130117052,
			-0.077571493840065148, -0.03224486958502952, 0.24229488706619015,
			0.13842814590110342, -0.72430852843857441, 0.60382926979747287,
			-0.16010239797412501 };
		for (i = 0; i < 10; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 10;
	}
	else if (!strcmp(name,"db6")){
		double lp1_a[] = { -0.0010773010849955799,
			0.0047772575110106514,
			0.0005538422009938016,
			-0.031582039318031156,
			0.027522865530016288,
			0.097501605587079362,
			-0.12976686756709563,
			-0.22626469396516913,
			0.3152503517092432,
			0.75113390802157753,
			0.49462389039838539,
			0.11154074335008017
		};

		double hp1_a[] = { -0.11154074335008017,
			0.49462389039838539,
			-0.75113390802157753,
			0.3152503517092432,
			0.22626469396516913,
			-0.12976686756709563,
			-0.097501605587079362,
			0.027522865530016288,
			0.031582039318031156,
			0.0005538422009938016,
			-0.0047772575110106514,
			-0.0010773010849955799
		};

		double lp2_a[] = { 0.11154074335008017,
			0.49462389039838539,
			0.75113390802157753,
			0.3152503517092432,
			-0.22626469396516913,
			-0.12976686756709563,
			0.097501605587079362,
			0.027522865530016288,
			-0.031582039318031156,
			0.0005538422009938016,
			0.0047772575110106514,
			-0.0010773010849955799
		};

		double hp2_a[] = { -0.0010773010849955799,
			-0.0047772575110106514,
			0.0005538422009938016,
			0.031582039318031156,
			0.027522865530016288,
			-0.097501605587079362,
			-0.12976686756709563,
			0.22626469396516913,
			0.3152503517092432,
			-0.75113390802157753,
			0.49462389039838539,
			-0.11154074335008017
		};
		for (i = 0; i < 12; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 12;
	}
	else if (!strcmp(name,"db7")){
		double lp1_a[] = { 0.00035371380000103988,
			-0.0018016407039998328,
			0.00042957797300470274,
			0.012550998556013784,
			-0.01657454163101562,
			-0.038029936935034633,
			0.080612609151065898,
			0.071309219267050042,
			-0.22403618499416572,
			-0.14390600392910627,
			0.4697822874053586,
			0.72913209084655506,
			0.39653931948230575,
			0.077852054085062364
		};

		double hp1_a[] = { -0.077852054085062364,
			0.39653931948230575,
			-0.72913209084655506,
			0.4697822874053586,
			0.14390600392910627,
			-0.22403618499416572,
			-0.071309219267050042,
			0.080612609151065898,
			0.038029936935034633,
			-0.01657454163101562,
			-0.012550998556013784,
			0.0004295779730047027,
			0.0018016407039998328,
			0.00035371380000103988
		};

		double lp2_a[] = { 0.077852054085062364,
			0.39653931948230575,
			0.72913209084655506,
			0.4697822874053586,
			-0.14390600392910627,
			-0.22403618499416572,
			0.071309219267050042,
			0.080612609151065898,
			-0.038029936935034633,
			-0.01657454163101562,
			0.012550998556013784,
			0.00042957797300470274,
			-0.0018016407039998328,
			0.00035371380000103988
		};

		double hp2_a[] = { 0.00035371380000103988,
			0.0018016407039998328,
			0.00042957797300470274,
			-0.01255099855601378,
			-0.01657454163101562,
			0.038029936935034633,
			0.080612609151065898,
			-0.071309219267050042,
			-0.22403618499416572,
			0.14390600392910627,
			0.4697822874053586,
			-0.72913209084655506,
			0.39653931948230575,
			-0.077852054085062364
		};
		for (i = 0; i < 14; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 14;
	}
	else if (!strcmp(name,"db8")){
		double lp1_a[] = { -0.00011747678400228192,
			0.00067544940599855677,
			-0.00039174037299597711,
			-0.0048703529930106603,
			0.0087460940470156547,
			0.013981027917015516,
			-0.044088253931064719,
			-0.017369301002022108,
			0.12874742662018601,
			0.00047248457399797254,
			-0.28401554296242809,
			-0.015829105256023893,
			0.58535468365486909,
			0.67563073629801285,
			0.31287159091446592,
			0.054415842243081609
		};

		double hp1_a[] = { -0.054415842243081609,
			0.31287159091446592,
			-0.67563073629801285,
			0.58535468365486909,
			0.015829105256023893,
			-0.28401554296242809,
			-0.00047248457399797254,
			0.12874742662018601,
			0.017369301002022108,
			-0.044088253931064719,
			-0.013981027917015516,
			0.0087460940470156547,
			0.0048703529930106603,
			-0.00039174037299597711,
			-0.00067544940599855677,
			-0.00011747678400228192
		};

		double lp2_a[] = { 0.054415842243081609,
			0.31287159091446592,
			0.67563073629801285,
			0.58535468365486909,
			-0.015829105256023893,
			-0.28401554296242809,
			0.00047248457399797254,
			0.12874742662018601,
			-0.017369301002022108,
			-0.044088253931064719,
			0.013981027917015516,
			0.0087460940470156547,
			-0.0048703529930106603,
			-0.00039174037299597711,
			0.00067544940599855677,
			-0.00011747678400228192
		};

		double hp2_a[] = { -0.00011747678400228192,
			-0.00067544940599855677,
			-0.00039174037299597711,
			0.0048703529930106603,
			0.0087460940470156547,
			-0.013981027917015516,
			-0.044088253931064719,
			0.017369301002022108,
			0.12874742662018601,
			-0.00047248457399797254,
			-0.28401554296242809,
			0.015829105256023893,
			0.58535468365486909,
			-0.67563073629801285,
			0.31287159091446592,
			-0.054415842243081609
		};
		for (i = 0; i < 16; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 16;
	}
	else if (!strcmp(name,"db9")){
		double lp1_a[] = { 3.9347319995026124e-05,
			-0.00025196318899817888,
			0.00023038576399541288,
			0.0018476468829611268,
			-0.0042815036819047227,
			-0.004723204757894831,
			0.022361662123515244,
			0.00025094711499193845,
			-0.067632829059523988,
			0.030725681478322865,
			0.14854074933476008,
			-0.096840783220879037,
			-0.29327378327258685,
			0.13319738582208895,
			0.65728807803663891,
			0.6048231236767786,
			0.24383467463766728,
			0.038077947363167282
		};

		double hp1_a[] = { -0.038077947363167282,
			0.24383467463766728,
			-0.6048231236767786,
			0.65728807803663891,
			-0.13319738582208895,
			-0.29327378327258685,
			0.096840783220879037,
			0.14854074933476008,
			-0.030725681478322865,
			-0.067632829059523988,
			-0.00025094711499193845,
			0.022361662123515244,
			0.004723204757894831,
			-0.0042815036819047227,
			-0.0018476468829611268,
			0.00023038576399541288,
			0.00025196318899817888,
			3.9347319995026124e-05
		};

		double lp2_a[] = { 0.038077947363167282,
			0.24383467463766728,
			0.6048231236767786,
			0.65728807803663891,
			0.13319738582208895,
			-0.29327378327258685,
			-0.096840783220879037,
			0.14854074933476008,
			0.030725681478322865,
			-0.067632829059523988,
			0.00025094711499193845,
			0.022361662123515244,
			-0.004723204757894831,
			-0.0042815036819047227,
			0.0018476468829611268,
			0.00023038576399541288,
			-0.00025196318899817888,
			3.9347319995026124e-05
		};

		double hp2_a[] = { 3.9347319995026124e-05,
			0.00025196318899817888,
			0.00023038576399541288,
			-0.0018476468829611268,
			-0.0042815036819047227,
			0.004723204757894831,
			0.022361662123515244,
			-0.00025094711499193845,
			-0.067632829059523988,
			-0.030725681478322865,
			0.14854074933476008,
			0.096840783220879037,
			-0.29327378327258685,
			-0.13319738582208895,
			0.65728807803663891,
			-0.6048231236767786,
			0.24383467463766728,
			-0.038077947363167282
		};
		for (i = 0; i < 18; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 18;
	}

	else if (!strcmp(name,"db10")){
		double lp1_a[] = { -1.3264203002354869e-05,
			9.3588670001089845e-05,
			-0.0001164668549943862,
			-0.00068585669500468248,
			0.0019924052949908499,
			0.0013953517469940798,
			-0.010733175482979604,
			0.0036065535669883944,
			0.033212674058933238,
			-0.029457536821945671,
			-0.071394147165860775,
			0.093057364603806592,
			0.12736934033574265,
			-0.19594627437659665,
			-0.24984642432648865,
			0.28117234366042648,
			0.68845903945259213,
			0.52720118893091983,
			0.18817680007762133,
			0.026670057900950818
		};

		double hp1_a[] = { -0.026670057900950818,
			0.18817680007762133,
			-0.52720118893091983,
			0.68845903945259213,
			-0.28117234366042648,
			-0.24984642432648865,
			0.19594627437659665,
			0.12736934033574265,
			-0.093057364603806592,
			-0.071394147165860775,
			0.029457536821945671,
			0.033212674058933238,
			-0.0036065535669883944,
			-0.010733175482979604,
			-0.0013953517469940798,
			0.0019924052949908499,
			0.00068585669500468248,
			-0.0001164668549943862,
			-9.3588670001089845e-05,
			-1.3264203002354869e-05
		};

		double lp2_a[] = { 0.026670057900950818,
			0.18817680007762133,
			0.52720118893091983,
			0.68845903945259213,
			0.28117234366042648,
			-0.24984642432648865,
			-0.19594627437659665,
			0.12736934033574265,
			0.093057364603806592,
			-0.071394147165860775,
			-0.029457536821945671,
			0.033212674058933238,
			0.0036065535669883944,
			-0.010733175482979604,
			0.0013953517469940798,
			0.0019924052949908499,
			-0.00068585669500468248,
			-0.0001164668549943862,
			9.3588670001089845e-05,
			-1.3264203002354869e-05
		};

		double hp2_a[] = { -1.3264203002354869e-05,
			-9.3588670001089845e-05,
			-0.0001164668549943862,
			0.00068585669500468248,
			0.0019924052949908499,
			-0.0013953517469940798,
			-0.010733175482979604,
			-0.0036065535669883944,
			0.033212674058933238,
			0.029457536821945671,
			-0.071394147165860775,
			-0.093057364603806592,
			0.12736934033574265,
			0.19594627437659665,
			-0.24984642432648865,
			-0.28117234366042648,
			0.68845903945259213,
			-0.52720118893091983,
			0.18817680007762133,
			-0.026670057900950818
		};
		for (i = 0; i < 20; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 20;
	}

	else if (!strcmp(name,"db12")){
		double lp1_a[] = { -1.5290717580684923e-06,
			1.2776952219379579e-05,
			-2.4241545757030318e-05,
			-8.8504109208203182e-05,
			0.00038865306282092672,
			6.5451282125215034e-06,
			-0.0021795036186277044,
			0.0022486072409952287,
			0.0067114990087955486,
			-0.012840825198299882,
			-0.01221864906974642,
			0.041546277495087637,
			0.010849130255828966,
			-0.09643212009649671,
			0.0053595696743599965,
			0.18247860592758275,
			-0.023779257256064865,
			-0.31617845375277914,
			-0.044763885653777619,
			0.51588647842780067,
			0.65719872257929113,
			0.37735513521420411,
			0.10956627282118277,
			0.013112257957229239
		};

		double hp1_a[] = { -0.013112257957229239,
			0.10956627282118277,
			-0.37735513521420411,
			0.65719872257929113,
			-0.51588647842780067,
			-0.044763885653777619,
			0.31617845375277914,
			-0.023779257256064865,
			-0.18247860592758275,
			0.0053595696743599965,
			0.09643212009649671,
			0.010849130255828966,
			-0.041546277495087637,
			-0.01221864906974642,
			0.012840825198299882,
			0.0067114990087955486,
			-0.0022486072409952287,
			-0.0021795036186277044,
			-6.5451282125215034e-06,
			0.00038865306282092672,
			8.8504109208203182e-05,
			-2.4241545757030318e-05,
			-1.2776952219379579e-05,
			-1.5290717580684923e-06
		};

		double lp2_a[] = { 0.013112257957229239,
			0.10956627282118277,
			0.37735513521420411,
			0.65719872257929113,
			0.51588647842780067,
			-0.044763885653777619,
			-0.31617845375277914,
			-0.023779257256064865,
			0.18247860592758275,
			0.0053595696743599965,
			-0.09643212009649671,
			0.010849130255828966,
			0.041546277495087637,
			-0.01221864906974642,
			-0.012840825198299882,
			0.0067114990087955486,
			0.0022486072409952287,
			-0.0021795036186277044,
			6.5451282125215034e-06,
			0.00038865306282092672,
			-8.8504109208203182e-05,
			-2.4241545757030318e-05,
			1.2776952219379579e-05,
			-1.5290717580684923e-06
		};

		double hp2_a[] = { -1.5290717580684923e-06,
			-1.2776952219379579e-05,
			-2.4241545757030318e-05,
			8.8504109208203182e-05,
			0.00038865306282092672,
			-6.5451282125215034e-06,
			-0.0021795036186277044,
			-0.0022486072409952287,
			0.0067114990087955486,
			0.012840825198299882,
			-0.01221864906974642,
			-0.041546277495087637,
			0.010849130255828966,
			0.09643212009649671,
			0.0053595696743599965,
			-0.18247860592758275,
			-0.023779257256064865,
			0.31617845375277914,
			-0.044763885653777619,
			-0.51588647842780067,
			0.65719872257929113,
			-0.37735513521420411,
			0.10956627282118277,
			-0.013112257957229239
		};
		for (i = 0; i < 24; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 24;
	}
	else if (!strcmp(name,"db13")){
		double lp1_a[] = { 5.2200350984547998e-07,
			-4.7004164793608082e-06,
			1.0441930571407941e-05,
			3.0678537579324358e-05,
			-0.00016512898855650571,
			4.9251525126285676e-05,
			0.00093232613086724904,
			-0.0013156739118922766,
			-0.002761911234656831,
			0.0072555894016171187,
			0.0039239414487955773,
			-0.023831420710327809,
			0.0023799722540522269,
			0.056139477100276156,
			-0.026488406475345658,
			-0.10580761818792761,
			0.072948933656788742,
			0.17947607942935084,
			-0.12457673075080665,
			-0.31497290771138414,
			0.086985726179645007,
			0.58888957043121193,
			0.61105585115878114,
			0.31199632216043488,
			0.082861243872901946,
			0.0092021335389622788
		};

		double hp1_a[] = { -0.0092021335389622788,
			0.082861243872901946,
			-0.31199632216043488,
			0.61105585115878114,
			-0.58888957043121193,
			0.086985726179645007,
			0.31497290771138414,
			-0.12457673075080665,
			-0.17947607942935084,
			0.072948933656788742,
			0.10580761818792761,
			-0.026488406475345658,
			-0.056139477100276156,
			0.0023799722540522269,
			0.023831420710327809,
			0.0039239414487955773,
			-0.0072555894016171187,
			-0.002761911234656831,
			0.0013156739118922766,
			0.00093232613086724904,
			-4.9251525126285676e-05,
			-0.00016512898855650571,
			-3.0678537579324358e-05,
			1.0441930571407941e-05,
			4.7004164793608082e-06,
			5.2200350984547998e-07
		};

		double lp2_a[] = { 0.0092021335389622788,
			0.082861243872901946,
			0.31199632216043488,
			0.61105585115878114,
			0.58888957043121193,
			0.086985726179645007,
			-0.31497290771138414,
			-0.12457673075080665,
			0.17947607942935084,
			0.072948933656788742,
			-0.10580761818792761,
			-0.026488406475345658,
			0.056139477100276156,
			0.0023799722540522269,
			-0.023831420710327809,
			0.0039239414487955773,
			0.0072555894016171187,
			-0.002761911234656831,
			-0.0013156739118922766,
			0.00093232613086724904,
			4.9251525126285676e-05,
			-0.00016512898855650571,
			3.0678537579324358e-05,
			1.0441930571407941e-05,
			-4.7004164793608082e-06,
			5.2200350984547998e-07
		};

		double hp2_a[] = { 5.2200350984547998e-07,
			4.7004164793608082e-06,
			1.0441930571407941e-05,
			-3.0678537579324358e-05,
			-0.00016512898855650571,
			-4.9251525126285676e-05,
			0.00093232613086724904,
			0.0013156739118922766,
			-0.002761911234656831,
			-0.0072555894016171187,
			0.0039239414487955773,
			0.023831420710327809,
			0.0023799722540522269,
			-0.056139477100276156,
			-0.026488406475345658,
			0.10580761818792761,
			0.072948933656788742,
			-0.17947607942935084,
			-0.12457673075080665,
			0.31497290771138414,
			0.086985726179645007,
			-0.58888957043121193,
			0.61105585115878114,
			-0.31199632216043488,
			0.082861243872901946,
			-0.0092021335389622788
		};
		for (i = 0; i < 26; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 26;
	}

	else if (!strcmp(name,"db11")){
		double lp1_a[] = { 4.4942742772363519e-06,
			-3.4634984186983789e-05,
			5.4439074699366381e-05,
			0.00024915252355281426,
			-0.00089302325066623663,
			-0.00030859285881515924,
			0.0049284176560587777,
			-0.0033408588730145018,
			-0.015364820906201324,
			0.020840904360180039,
			0.031335090219045313,
			-0.066438785695020222,
			-0.04647995511667613,
			0.14981201246638268,
			0.066043588196690886,
			-0.27423084681792875,
			-0.16227524502747828,
			0.41196436894789695,
			0.68568677491617847,
			0.44989976435603013,
			0.14406702115061959,
			0.018694297761470441
		};

		double hp1_a[] = { -0.018694297761470441,
			0.14406702115061959,
			-0.44989976435603013,
			0.68568677491617847,
			-0.41196436894789695,
			-0.16227524502747828,
			0.27423084681792875,
			0.066043588196690886,
			-0.14981201246638268,
			-0.04647995511667613,
			0.066438785695020222,
			0.031335090219045313,
			-0.020840904360180039,
			-0.015364820906201324,
			0.0033408588730145018,
			0.0049284176560587777,
			0.00030859285881515924,
			-0.00089302325066623663,
			-0.00024915252355281426,
			5.4439074699366381e-05,
			3.4634984186983789e-05,
			4.4942742772363519e-06
		};

		double lp2_a[] = { 0.018694297761470441,
			0.14406702115061959,
			0.44989976435603013,
			0.68568677491617847,
			0.41196436894789695,
			-0.16227524502747828,
			-0.27423084681792875,
			0.066043588196690886,
			0.14981201246638268,
			-0.04647995511667613,
			-0.066438785695020222,
			0.031335090219045313,
			0.020840904360180039,
			-0.015364820906201324,
			-0.0033408588730145018,
			0.0049284176560587777,
			-0.00030859285881515924,
			-0.00089302325066623663,
			0.00024915252355281426,
			5.4439074699366381e-05,
			-3.4634984186983789e-05,
			4.4942742772363519e-06
		};

		double hp2_a[] = { 4.4942742772363519e-06,
			3.4634984186983789e-05,
			5.4439074699366381e-05,
			-0.00024915252355281426,
			-0.00089302325066623663,
			0.00030859285881515924,
			0.0049284176560587777,
			0.0033408588730145018,
			-0.015364820906201324,
			-0.020840904360180039,
			0.031335090219045313,
			0.066438785695020222,
			-0.04647995511667613,
			-0.14981201246638268,
			0.066043588196690886,
			0.27423084681792875,
			-0.16227524502747828,
			-0.41196436894789695,
			0.68568677491617847,
			-0.44989976435603013,
			0.14406702115061959,
			-0.018694297761470441
		};
		for (i = 0; i < 22; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 22;
	}

	else if (!strcmp(name,"db14")){
		double lp1_a[] = { -1.7871399683109222e-07,
			1.7249946753674012e-06,
			-4.3897049017804176e-06,
			-1.0337209184568496e-05,
			6.875504252695734e-05,
			-4.1777245770370672e-05,
			-0.00038683194731287514,
			0.00070802115423540481,
			0.001061691085606874,
			-0.003849638868019787,
			-0.00074621898926387534,
			0.012789493266340071,
			-0.0056150495303375755,
			-0.030185351540353976,
			0.026981408307947971,
			0.05523712625925082,
			-0.071548955503983505,
			-0.086748411568110598,
			0.13998901658445695,
			0.13839521386479153,
			-0.21803352999321651,
			-0.27168855227867705,
			0.21867068775886594,
			0.63118784910471981,
			0.55430561794077093,
			0.25485026779256437,
			0.062364758849384874,
			0.0064611534600864905
		};

		double hp1_a[] = { -0.0064611534600864905,
			0.062364758849384874,
			-0.25485026779256437,
			0.55430561794077093,
			-0.63118784910471981,
			0.21867068775886594,
			0.27168855227867705,
			-0.21803352999321651,
			-0.13839521386479153,
			0.13998901658445695,
			0.086748411568110598,
			-0.071548955503983505,
			-0.05523712625925082,
			0.026981408307947971,
			0.030185351540353976,
			-0.0056150495303375755,
			-0.012789493266340071,
			-0.00074621898926387534,
			0.003849638868019787,
			0.001061691085606874,
			-0.00070802115423540481,
			-0.00038683194731287514,
			4.1777245770370672e-05,
			6.875504252695734e-05,
			1.0337209184568496e-05,
			-4.3897049017804176e-06,
			-1.7249946753674012e-06,
			-1.7871399683109222e-07
		};

		double lp2_a[] = { 0.0064611534600864905,
			0.062364758849384874,
			0.25485026779256437,
			0.55430561794077093,
			0.63118784910471981,
			0.21867068775886594,
			-0.27168855227867705,
			-0.21803352999321651,
			0.13839521386479153,
			0.13998901658445695,
			-0.086748411568110598,
			-0.071548955503983505,
			0.05523712625925082,
			0.026981408307947971,
			-0.030185351540353976,
			-0.0056150495303375755,
			0.012789493266340071,
			-0.00074621898926387534,
			-0.003849638868019787,
			0.001061691085606874,
			0.00070802115423540481,
			-0.00038683194731287514,
			-4.1777245770370672e-05,
			6.875504252695734e-05,
			-1.0337209184568496e-05,
			-4.3897049017804176e-06,
			1.7249946753674012e-06,
			-1.7871399683109222e-07
		};

		double hp2_a[] = { -1.7871399683109222e-07,
			-1.7249946753674012e-06,
			-4.3897049017804176e-06,
			1.0337209184568496e-05,
			6.875504252695734e-05,
			4.1777245770370672e-05,
			-0.00038683194731287514,
			-0.00070802115423540481,
			0.001061691085606874,
			0.003849638868019787,
			-0.00074621898926387534,
			-0.012789493266340071,
			-0.0056150495303375755,
			0.030185351540353976,
			0.026981408307947971,
			-0.05523712625925082,
			-0.071548955503983505,
			0.086748411568110598,
			0.13998901658445695,
			-0.13839521386479153,
			-0.21803352999321651,
			0.27168855227867705,
			0.21867068775886594,
			-0.63118784910471981,
			0.55430561794077093,
			-0.25485026779256437,
			0.062364758849384874,
			-0.0064611534600864905
		};
		for (i = 0; i < 28; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 28;
	}
	else if (!strcmp(name,"db15")){
		double lp1_a[] = { 6.1333599133037138e-08,
			-6.3168823258794506e-07,
			1.8112704079399406e-06,
			3.3629871817363823e-06,
			-2.8133296266037558e-05,
			2.579269915531323e-05,
			0.00015589648992055726,
			-0.00035956524436229364,
			-0.00037348235413726472,
			0.0019433239803823459,
			-0.00024175649075894543,
			-0.0064877345603061454,
			0.0051010003604228726,
			0.015083918027862582,
			-0.020810050169636805,
			-0.025767007328366939,
			0.054780550584559995,
			0.033877143923563204,
			-0.11112093603713753,
			-0.039666176555733602,
			0.19014671400708816,
			0.065282952848765688,
			-0.28888259656686216,
			-0.19320413960907623,
			0.33900253545462167,
			0.64581314035721027,
			0.49263177170797529,
			0.20602386398692688,
			0.046743394892750617,
			0.0045385373615773762
		};

		double hp1_a[] = { -0.0045385373615773762,
			0.046743394892750617,
			-0.20602386398692688,
			0.49263177170797529,
			-0.64581314035721027,
			0.33900253545462167,
			0.19320413960907623,
			-0.28888259656686216,
			-0.065282952848765688,
			0.19014671400708816,
			0.039666176555733602,
			-0.11112093603713753,
			-0.033877143923563204,
			0.054780550584559995,
			0.025767007328366939,
			-0.020810050169636805,
			-0.015083918027862582,
			0.0051010003604228726,
			0.0064877345603061454,
			-0.00024175649075894543,
			-0.0019433239803823459,
			-0.00037348235413726472,
			0.00035956524436229364,
			0.00015589648992055726,
			-2.579269915531323e-05,
			-2.8133296266037558e-05,
			-3.3629871817363823e-06,
			1.8112704079399406e-06,
			6.3168823258794506e-07,
			6.1333599133037138e-08
		};

		double lp2_a[] = { 0.0045385373615773762,
			0.046743394892750617,
			0.20602386398692688,
			0.49263177170797529,
			0.64581314035721027,
			0.33900253545462167,
			-0.19320413960907623,
			-0.28888259656686216,
			0.065282952848765688,
			0.19014671400708816,
			-0.039666176555733602,
			-0.11112093603713753,
			0.033877143923563204,
			0.054780550584559995,
			-0.025767007328366939,
			-0.020810050169636805,
			0.015083918027862582,
			0.0051010003604228726,
			-0.0064877345603061454,
			-0.00024175649075894543,
			0.0019433239803823459,
			-0.00037348235413726472,
			-0.00035956524436229364,
			0.00015589648992055726,
			2.579269915531323e-05,
			-2.8133296266037558e-05,
			3.3629871817363823e-06,
			1.8112704079399406e-06,
			-6.3168823258794506e-07,
			6.1333599133037138e-08
		};

		double hp2_a[] = { 6.1333599133037138e-08,
			6.3168823258794506e-07,
			1.8112704079399406e-06,
			-3.3629871817363823e-06,
			-2.8133296266037558e-05,
			-2.579269915531323e-05,
			0.00015589648992055726,
			0.00035956524436229364,
			-0.00037348235413726472,
			-0.0019433239803823459,
			-0.00024175649075894543,
			0.0064877345603061454,
			0.0051010003604228726,
			-0.015083918027862582,
			-0.020810050169636805,
			0.025767007328366939,
			0.054780550584559995,
			-0.033877143923563204,
			-0.11112093603713753,
			0.039666176555733602,
			0.19014671400708816,
			-0.065282952848765688,
			-0.28888259656686216,
			0.19320413960907623,
			0.33900253545462167,
			-0.64581314035721027,
			0.49263177170797529,
			-0.20602386398692688,
			0.046743394892750617,
			-0.0045385373615773762
		};
		for (i = 0; i < 30; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 30;
	}
	else if (!strcmp(name,"bior1.1")){
		double lp1_a[] = { 0.70710678118654757,
			0.70710678118654757
		};

		double hp1_a[] = { -0.70710678118654757,
			0.70710678118654757
		};

		double lp2_a[] = { 0.70710678118654757,
			0.70710678118654757
		};

		double hp2_a[] = { 0.70710678118654757,
			-0.70710678118654757
		};
		for (i = 0; i < 2; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 2;
	}

	else if (!strcmp(name,"bior1.3")){
		double lp1_a[] = { -0.088388347648318447,
			0.088388347648318447,
			0.70710678118654757,
			0.70710678118654757,
			0.088388347648318447,
			-0.088388347648318447,
		};

		double hp1_a[] = { 0.0,
			0.0,
			-0.70710678118654757,
			0.70710678118654757,
			0.0,
			0.0
		};

		double lp2_a[] = { 0.0,
			0.0,
			0.70710678118654757,
			0.70710678118654757,
			0.0,
			0.0
		};

		double hp2_a[] = { -0.088388347648318447,
			-0.088388347648318447,
			0.70710678118654757,
			-0.70710678118654757,
			0.088388347648318447,
			0.088388347648318447
		};
		for (i = 0; i < 6; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 6;
	}

	else if (!strcmp(name,"bior1.5")){
		double lp1_a[] = { 0.01657281518405971,
			-0.01657281518405971,
			-0.12153397801643787,
			0.12153397801643787,
			0.70710678118654757,
			0.70710678118654757,
			0.12153397801643787,
			-0.12153397801643787,
			-0.01657281518405971,
			0.01657281518405971
		};

		double hp1_a[] = { 0.0,
			0.0,
			0.0,
			0.0,
			-0.70710678118654757,
			0.70710678118654757,
			0.0,
			0.0,
			0.0,
			0.0
		};

		double lp2_a[] = { 0.0,
			0.0,
			0.0,
			0.0,
			0.70710678118654757,
			0.70710678118654757,
			0.0,
			0.0,
			0.0,
			0.0
		};

		double hp2_a[] = { 0.01657281518405971,
			0.01657281518405971,
			-0.12153397801643787,
			-0.12153397801643787,
			0.70710678118654757,
			-0.70710678118654757,
			0.12153397801643787,
			0.12153397801643787,
			-0.01657281518405971,
			-0.01657281518405971
		};
		for (i = 0; i < 10; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 10;
	}

	else if (!strcmp(name,"bior2.2")){
		double lp1_a[] = { 0.0,
			-0.17677669529663689,
			0.35355339059327379,
			1.0606601717798214,
			0.35355339059327379,
			-0.17677669529663689
		};

		double hp1_a[] = { 0.0,
			0.35355339059327379,
			-0.70710678118654757,
			0.35355339059327379,
			0.0,
			0.0
		};

		double lp2_a[] = { 0.0,
			0.35355339059327379,
			0.70710678118654757,
			0.35355339059327379,
			0.0,
			0.0
		};

		double hp2_a[] = { 0.0,
			0.17677669529663689,
			0.35355339059327379,
			-1.0606601717798214,
			0.35355339059327379,
			0.17677669529663689

		};
		for (i = 0; i < 6; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 6;
	}

	else if (!strcmp(name,"bior2.4")){
		double lp1_a[] = { 0.0,
			0.033145630368119419,
			-0.066291260736238838,
			-0.17677669529663689,
			0.4198446513295126,
			0.99436891104358249,
			0.4198446513295126,
			-0.17677669529663689,
			-0.066291260736238838,
			0.033145630368119419
		};

		double hp1_a[] = { 0.0,
			0.0,
			0.0,
			0.35355339059327379,
			-0.70710678118654757,
			0.35355339059327379,
			0.0,
			0.0,
			0.0,
			0.0

		};

		double lp2_a[] = { 0.0,
			0.0,
			0.0,
			0.35355339059327379,
			0.70710678118654757,
			0.35355339059327379,
			0.0,
			0.0,
			0.0,
			0.0

		};

		double hp2_a[] = { 0.0,
			-0.033145630368119419,
			-0.066291260736238838,
			0.17677669529663689,
			0.4198446513295126,
			-0.99436891104358249,
			0.4198446513295126,
			0.17677669529663689,
			-0.066291260736238838,
			-0.033145630368119419
		};
		for (i = 0; i < 10; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 10;
	}

	else if (!strcmp(name,"bior2.6")){
		double lp1_a[] = { 0.0,
			-0.0069053396600248784,
			0.013810679320049757,
			0.046956309688169176,
			-0.10772329869638811,
			-0.16987135563661201,
			0.44746600996961211,
			0.96674755240348298,
			0.44746600996961211,
			-0.16987135563661201,
			-0.10772329869638811,
			0.046956309688169176,
			0.013810679320049757,
			-0.0069053396600248784
		};

		double hp1_a[] = { 0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.35355339059327379,
			-0.70710678118654757,
			0.35355339059327379,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0
		};

		double lp2_a[] = { 0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.35355339059327379,
			0.70710678118654757,
			0.35355339059327379,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0
		};

		double hp2_a[] = { 0.0,
			0.0069053396600248784,
			0.013810679320049757,
			-0.046956309688169176,
			-0.10772329869638811,
			0.16987135563661201,
			0.44746600996961211,
			-0.96674755240348298,
			0.44746600996961211,
			0.16987135563661201,
			-0.10772329869638811,
			-0.046956309688169176,
			0.013810679320049757,
			0.0069053396600248784
		};
		for (i = 0; i < 14; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 14;
	}
	else if (!strcmp(name,"bior2.8")){
		double lp1_a[] = { 0.0,
			0.0015105430506304422,
			-0.0030210861012608843,
			-0.012947511862546647,
			0.028916109826354178,
			0.052998481890690945,
			-0.13491307360773608,
			-0.16382918343409025,
			0.46257144047591658,
			0.95164212189717856,
			0.46257144047591658,
			-0.16382918343409025,
			-0.13491307360773608,
			0.052998481890690945,
			0.028916109826354178,
			-0.012947511862546647,
			-0.0030210861012608843,
			0.0015105430506304422
		};

		double hp1_a[] = { 0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.35355339059327379,
			-0.70710678118654757,
			0.35355339059327379,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0
		};

		double lp2_a[] = { 0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.35355339059327379,
			0.70710678118654757,
			0.35355339059327379,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0
		};

		double hp2_a[] = { 0.0,
			-0.0015105430506304422,
			-0.0030210861012608843,
			0.012947511862546647,
			0.028916109826354178,
			-0.052998481890690945,
			-0.13491307360773608,
			0.16382918343409025,
			0.46257144047591658,
			-0.95164212189717856,
			0.46257144047591658,
			0.16382918343409025,
			-0.13491307360773608,
			-0.052998481890690945,
			0.028916109826354178,
			0.012947511862546647,
			-0.0030210861012608843,
			-0.0015105430506304422
		};
		for (i = 0; i < 18; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 18;
	}

	else if (!strcmp(name,"bior3.1")){
		double lp1_a[] = { -0.35355339059327379,
			1.0606601717798214,
			1.0606601717798214,
			-0.35355339059327379
		};

		double hp1_a[] = { -0.17677669529663689,
			0.53033008588991071,
			-0.53033008588991071,
			0.17677669529663689
		};

		double lp2_a[] = { 0.17677669529663689,
			0.53033008588991071,
			0.53033008588991071,
			0.17677669529663689
		};

		double hp2_a[] = { -0.35355339059327379,
			-1.0606601717798214,
			1.0606601717798214,
			0.35355339059327379
		};
		for (i = 0; i < 4; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 4;
	}
	else if (!strcmp(name,"bior3.3")){
		double lp1_a[] = { 0.066291260736238838,
			-0.19887378220871652,
			-0.15467960838455727,
			0.99436891104358249,
			0.99436891104358249,
			-0.15467960838455727,
			-0.19887378220871652,
			0.066291260736238838
		};

		double hp1_a[] = { 0.0,
			0.0,
			-0.17677669529663689,
			0.53033008588991071,
			-0.53033008588991071,
			0.17677669529663689,
			0.0,
			0.0
		};

		double lp2_a[] = { 0.0,
			0.0,
			0.17677669529663689,
			0.53033008588991071,
			0.53033008588991071,
			0.17677669529663689,
			0.0,
			0.0
		};

		double hp2_a[] = { 0.066291260736238838,
			0.19887378220871652,
			-0.15467960838455727,
			-0.99436891104358249,
			0.99436891104358249,
			0.15467960838455727,
			-0.19887378220871652,
			-0.066291260736238838
		};
		for (i = 0; i < 8; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 8;
	}
	else if (!strcmp(name,"bior3.5")){
		double lp1_a[] = { -0.013810679320049757,
			0.041432037960149271,
			0.052480581416189075,
			-0.26792717880896527,
			-0.071815532464258744,
			0.96674755240348298,
			0.96674755240348298,
			-0.071815532464258744,
			-0.26792717880896527,
			0.052480581416189075,
			0.041432037960149271,
			-0.013810679320049757
		};

		double hp1_a[] = { 0.0,
			0.0,
			0.0,
			0.0,
			-0.17677669529663689,
			0.53033008588991071,
			-0.53033008588991071,
			0.17677669529663689,
			0.0,
			0.0,
			0.0,
			0.0
		};

		double lp2_a[] = { 0.0,
			0.0,
			0.0,
			0.0,
			0.17677669529663689,
			0.53033008588991071,
			0.53033008588991071,
			0.17677669529663689,
			0.0,
			0.0,
			0.0,
			0.0
		};

		double hp2_a[] = { -0.013810679320049757,
			-0.041432037960149271,
			0.052480581416189075,
			0.26792717880896527,
			-0.071815532464258744,
			-0.96674755240348298,
			0.96674755240348298,
			0.071815532464258744,
			-0.26792717880896527,
			-0.052480581416189075,
			0.041432037960149271,
			0.013810679320049757
		};
		for (i = 0; i < 12; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 12;
	}

	else if (!strcmp(name,"bior3.7")){
		double lp1_a[] = { 0.0030210861012608843,
			-0.0090632583037826529,
			-0.016831765421310641,
			0.074663985074019001,
			0.031332978707362888,
			-0.301159125922835,
			-0.026499240945345472,
			0.95164212189717856,
			0.95164212189717856,
			-0.026499240945345472,
			-0.301159125922835,
			0.031332978707362888,
			0.074663985074019001,
			-0.016831765421310641,
			-0.0090632583037826529,
			0.0030210861012608843
		};

		double hp1_a[] = { 0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			-0.17677669529663689,
			0.53033008588991071,
			-0.53033008588991071,
			0.17677669529663689,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0
		};

		double lp2_a[] = { 0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.17677669529663689,
			0.53033008588991071,
			0.53033008588991071,
			0.17677669529663689,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0
		};

		double hp2_a[] = { 0.0030210861012608843,
			0.0090632583037826529,
			-0.016831765421310641,
			-0.074663985074019001,
			0.031332978707362888,
			0.301159125922835,
			-0.026499240945345472,
			-0.95164212189717856,
			0.95164212189717856,
			0.026499240945345472,
			-0.301159125922835,
			-0.031332978707362888,
			0.074663985074019001,
			0.016831765421310641,
			-0.0090632583037826529,
			-0.0030210861012608843
		};
		for (i = 0; i < 16; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 16;
	}
	else if (!strcmp(name,"bior3.9")){
		double lp1_a[] = { -0.00067974437278369901,
			0.0020392331183510968,
			0.0050603192196119811,
			-0.020618912641105536,
			-0.014112787930175846,
			0.09913478249423216,
			0.012300136269419315,
			-0.32019196836077857,
			0.0020500227115698858,
			0.94212570067820678,
			0.94212570067820678,
			0.0020500227115698858,
			-0.32019196836077857,
			0.012300136269419315,
			0.09913478249423216,
			-0.014112787930175846,
			-0.020618912641105536,
			0.0050603192196119811,
			0.0020392331183510968,
			-0.00067974437278369901
		};

		double hp1_a[] = { 0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			-0.17677669529663689,
			0.53033008588991071,
			-0.53033008588991071,
			0.17677669529663689,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0
		};

		double lp2_a[] = { 0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.17677669529663689,
			0.53033008588991071,
			0.53033008588991071,
			0.17677669529663689,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0,
			0.0
		};

		double hp2_a[] = { -0.00067974437278369901,
			-0.0020392331183510968,
			0.0050603192196119811,
			0.020618912641105536,
			-0.014112787930175846,
			-0.09913478249423216,
			0.012300136269419315,
			0.32019196836077857,
			0.0020500227115698858,
			-0.94212570067820678,
			0.94212570067820678,
			-0.0020500227115698858,
			-0.32019196836077857,
			-0.012300136269419315,
			0.09913478249423216,
			0.014112787930175846,
			-0.020618912641105536,
			-0.0050603192196119811,
			0.0020392331183510968,
			0.00067974437278369901
		};
		for (i = 0; i < 20; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 20;
	}
	else if (!strcmp(name,"bior4.4")){
		double lp1_a[] = { 0.0,
			0.03782845550726404,
			-0.023849465019556843,
			-0.11062440441843718,
			0.37740285561283066,
			0.85269867900889385,
			0.37740285561283066,
			-0.11062440441843718,
			-0.023849465019556843,
			0.03782845550726404
		};

		double hp1_a[] = { 0.0,
			-0.064538882628697058,
			0.040689417609164058,
			0.41809227322161724,
			-0.7884856164055829,
			0.41809227322161724,
			0.040689417609164058,
			-0.064538882628697058,
			0.0,
			0.0
		};

		double lp2_a[] = { 0.0,
			-0.064538882628697058,
			-0.040689417609164058,
			0.41809227322161724,
			0.7884856164055829,
			0.41809227322161724,
			-0.040689417609164058,
			-0.064538882628697058,
			0.0,
			0.0
		};

		double hp2_a[] = { 0.0,
			-0.03782845550726404,
			-0.023849465019556843,
			0.11062440441843718,
			0.37740285561283066,
			-0.85269867900889385,
			0.37740285561283066,
			0.11062440441843718,
			-0.023849465019556843,
			-0.03782845550726404
		};
		for (i = 0; i < 10; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 10;
	}
	else if (!strcmp(name,"bior5.5")){
		double lp1_a[] = { 0.0,
			0.0,
			0.03968708834740544,
			0.0079481086372403219,
			-0.054463788468236907,
			0.34560528195603346,
			0.73666018142821055,
			0.34560528195603346,
			-0.054463788468236907,
			0.0079481086372403219,
			0.03968708834740544,
			0.0
		};

		double hp1_a[] = { -0.013456709459118716,
			-0.0026949668801115071,
			0.13670658466432914,
			-0.093504697400938863,
			-0.47680326579848425,
			0.89950610974864842,
			-0.47680326579848425,
			-0.093504697400938863,
			0.13670658466432914,
			-0.0026949668801115071,
			-0.013456709459118716,
			0.0
		};

		double lp2_a[] = { 0.013456709459118716,
			-0.0026949668801115071,
			-0.13670658466432914,
			-0.093504697400938863,
			0.47680326579848425,
			0.89950610974864842,
			0.47680326579848425,
			-0.093504697400938863,
			-0.13670658466432914,
			-0.0026949668801115071,
			0.013456709459118716,
			0.0
		};

		double hp2_a[] = { 0.0,
			0.0,
			0.03968708834740544,
			-0.0079481086372403219,
			-0.054463788468236907,
			-0.34560528195603346,
			0.73666018142821055,
			-0.34560528195603346,
			-0.054463788468236907,
			-0.0079481086372403219,
			0.03968708834740544,
			0.0
		};
		for (i = 0; i < 12; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 12;
	}
	else if (!strcmp(name,"bior6.8")){
		double lp1_a[] = { 0.0,
			0.0019088317364812906,
			-0.0019142861290887667,
			-0.016990639867602342,
			0.01193456527972926,
			0.04973290349094079,
			-0.077263173167204144,
			-0.09405920349573646,
			0.42079628460982682,
			0.82592299745840225,
			0.42079628460982682,
			-0.09405920349573646,
			-0.077263173167204144,
			0.04973290349094079,
			0.01193456527972926,
			-0.016990639867602342,
			-0.0019142861290887667,
			0.0019088317364812906
		};

		double hp1_a[] = { 0.0,
			0.0,
			0.0,
			0.014426282505624435,
			-0.014467504896790148,
			-0.078722001062628819,
			0.040367979030339923,
			0.41784910915027457,
			-0.75890772945365415,
			0.41784910915027457,
			0.040367979030339923,
			-0.078722001062628819,
			-0.014467504896790148,
			0.014426282505624435,
			0.0,
			0.0,
			0.0,
			0.0
		};

		double lp2_a[] = { 0.0,
			0.0,
			0.0,
			0.014426282505624435,
			0.014467504896790148,
			-0.078722001062628819,
			-0.040367979030339923,
			0.41784910915027457,
			0.75890772945365415,
			0.41784910915027457,
			-0.040367979030339923,
			-0.078722001062628819,
			0.014467504896790148,
			0.014426282505624435,
			0.0,
			0.0,
			0.0,
			0.0
		};

		double hp2_a[] = { 0.0,
			-0.0019088317364812906,
			-0.0019142861290887667,
			0.016990639867602342,
			0.01193456527972926,
			-0.04973290349094079,
			-0.077263173167204144,
			0.09405920349573646,
			0.42079628460982682,
			-0.82592299745840225,
			0.42079628460982682,
			0.09405920349573646,
			-0.077263173167204144,
			-0.04973290349094079,
			0.01193456527972926,
			0.016990639867602342,
			-0.0019142861290887667,
			-0.0019088317364812906
		};
		for (i = 0; i < 18; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 18;
	}

	else if (!strcmp(name,"coif1")){
		double lp1_a[] = { -0.01565572813546454,
			-0.072732619512853897,
			0.38486484686420286,
			0.85257202021225542,
			0.33789766245780922,
			-0.072732619512853897
		};

		double hp1_a[] = { 0.072732619512853897,
			0.33789766245780922,
			-0.85257202021225542,
			0.38486484686420286,
			0.072732619512853897,
			-0.01565572813546454
		};

		double lp2_a[] = { -0.072732619512853897,
			0.33789766245780922,
			0.85257202021225542,
			0.38486484686420286,
			-0.072732619512853897,
			-0.01565572813546454
		};

		double hp2_a[] = { -0.01565572813546454,
			0.072732619512853897,
			0.38486484686420286,
			-0.85257202021225542,
			0.33789766245780922,
			0.072732619512853897
		};
		for (i = 0; i < 6; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 6;
	}
	else if (!strcmp(name,"coif2")){
		double lp1_a[] = { -0.00072054944536451221,
			-0.0018232088707029932,
			0.0056114348193944995,
			0.023680171946334084,
			-0.059434418646456898,
			-0.076488599078306393,
			0.41700518442169254,
			0.81272363544554227,
			0.38611006682116222,
			-0.067372554721963018,
			-0.041464936781759151,
			0.016387336463522112
		};

		double hp1_a[] = { -0.016387336463522112,
			-0.041464936781759151,
			0.067372554721963018,
			0.38611006682116222,
			-0.81272363544554227,
			0.41700518442169254,
			0.076488599078306393,
			-0.059434418646456898,
			-0.023680171946334084,
			0.0056114348193944995,
			0.0018232088707029932,
			-0.00072054944536451221
		};

		double lp2_a[] = { 0.016387336463522112,
			-0.041464936781759151,
			-0.067372554721963018,
			0.38611006682116222,
			0.81272363544554227,
			0.41700518442169254,
			-0.076488599078306393,
			-0.059434418646456898,
			0.023680171946334084,
			0.0056114348193944995,
			-0.0018232088707029932,
			-0.00072054944536451221
		};

		double hp2_a[] = { -0.00072054944536451221,
			0.0018232088707029932,
			0.0056114348193944995,
			-0.023680171946334084,
			-0.059434418646456898,
			0.076488599078306393,
			0.41700518442169254,
			-0.81272363544554227,
			0.38611006682116222,
			0.067372554721963018,
			-0.041464936781759151,
			-0.016387336463522112
		};
		for (i = 0; i < 12; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 12;
	}
	else if (!strcmp(name,"coif3")){
		double lp1_a[] = { -3.4599772836212559e-05,
			-7.0983303138141252e-05,
			0.00046621696011288631,
			0.0011175187708906016,
			-0.0025745176887502236,
			-0.0090079761366615805,
			0.015880544863615904,
			0.034555027573061628,
			-0.082301927106885983,
			-0.071799821619312018,
			0.42848347637761874,
			0.79377722262562056,
			0.4051769024096169,
			-0.061123390002672869,
			-0.0657719112818555,
			0.023452696141836267,
			0.0077825964273254182,
			-0.0037935128644910141
		};

		double hp1_a[] = { 0.0037935128644910141,
			0.0077825964273254182,
			-0.023452696141836267,
			-0.0657719112818555,
			0.061123390002672869,
			0.4051769024096169,
			-0.79377722262562056,
			0.42848347637761874,
			0.071799821619312018,
			-0.082301927106885983,
			-0.034555027573061628,
			0.015880544863615904,
			0.0090079761366615805,
			-0.0025745176887502236,
			-0.0011175187708906016,
			0.00046621696011288631,
			7.0983303138141252e-05,
			-3.4599772836212559e-05
		};

		double lp2_a[] = { -0.0037935128644910141,
			0.0077825964273254182,
			0.023452696141836267,
			-0.0657719112818555,
			-0.061123390002672869,
			0.4051769024096169,
			0.79377722262562056,
			0.42848347637761874,
			-0.071799821619312018,
			-0.082301927106885983,
			0.034555027573061628,
			0.015880544863615904,
			-0.0090079761366615805,
			-0.0025745176887502236,
			0.0011175187708906016,
			0.00046621696011288631,
			-7.0983303138141252e-05,
			-3.4599772836212559e-05
		};

		double hp2_a[] = { -3.4599772836212559e-05,
			7.0983303138141252e-05,
			0.00046621696011288631,
			-0.0011175187708906016,
			-0.0025745176887502236,
			0.0090079761366615805,
			0.015880544863615904,
			-0.034555027573061628,
			-0.082301927106885983,
			0.071799821619312018,
			0.42848347637761874,
			-0.79377722262562056,
			0.4051769024096169,
			0.061123390002672869,
			-0.0657719112818555,
			-0.023452696141836267,
			0.0077825964273254182,
			0.0037935128644910141
		};
		for (i = 0; i < 18; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 18;
	}
	else if (!strcmp(name,"coif4")){
		double lp1_a[] = { -1.7849850030882614e-06,
			-3.2596802368833675e-06,
			3.1229875865345646e-05,
			6.2339034461007128e-05,
			-0.00025997455248771324,
			-0.00058902075624433831,
			0.0012665619292989445,
			0.0037514361572784571,
			-0.0056582866866107199,
			-0.015211731527946259,
			0.025082261844864097,
			0.039334427123337491,
			-0.096220442033987982,
			-0.066627474263425038,
			0.4343860564914685,
			0.78223893092049901,
			0.41530840703043026,
			-0.056077313316754807,
			-0.081266699680878754,
			0.026682300156053072,
			0.016068943964776348,
			-0.0073461663276420935,
			-0.0016294920126017326,
			0.00089231366858231456
		};

		double hp1_a[] = { -0.00089231366858231456,
			-0.0016294920126017326,
			0.0073461663276420935,
			0.016068943964776348,
			-0.026682300156053072,
			-0.081266699680878754,
			0.056077313316754807,
			0.41530840703043026,
			-0.78223893092049901,
			0.4343860564914685,
			0.066627474263425038,
			-0.096220442033987982,
			-0.039334427123337491,
			0.025082261844864097,
			0.015211731527946259,
			-0.0056582866866107199,
			-0.0037514361572784571,
			0.0012665619292989445,
			0.00058902075624433831,
			-0.00025997455248771324,
			-6.2339034461007128e-05,
			3.1229875865345646e-05,
			3.2596802368833675e-06,
			-1.7849850030882614e-06
		};

		double lp2_a[] = { 0.00089231366858231456,
			-0.0016294920126017326,
			-0.0073461663276420935,
			0.016068943964776348,
			0.026682300156053072,
			-0.081266699680878754,
			-0.056077313316754807,
			0.41530840703043026,
			0.78223893092049901,
			0.4343860564914685,
			-0.066627474263425038,
			-0.096220442033987982,
			0.039334427123337491,
			0.025082261844864097,
			-0.015211731527946259,
			-0.0056582866866107199,
			0.0037514361572784571,
			0.0012665619292989445,
			-0.00058902075624433831,
			-0.00025997455248771324,
			6.2339034461007128e-05,
			3.1229875865345646e-05,
			-3.2596802368833675e-06,
			-1.7849850030882614e-06
		};

		double hp2_a[] = { -1.7849850030882614e-06,
			3.2596802368833675e-06,
			3.1229875865345646e-05,
			-6.2339034461007128e-05,
			-0.00025997455248771324,
			0.00058902075624433831,
			0.0012665619292989445,
			-0.0037514361572784571,
			-0.0056582866866107199,
			0.015211731527946259,
			0.025082261844864097,
			-0.039334427123337491,
			-0.096220442033987982,
			0.066627474263425038,
			0.4343860564914685,
			-0.78223893092049901,
			0.41530840703043026,
			0.056077313316754807,
			-0.081266699680878754,
			-0.026682300156053072,
			0.016068943964776348,
			0.0073461663276420935,
			-0.0016294920126017326,
			-0.00089231366858231456
		};
		for (i = 0; i < 24; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 24;
	}
	else if (!strcmp(name,"coif5")){
		double lp1_a[] = { -9.517657273819165e-08,
			-1.6744288576823017e-07,
			2.0637618513646814e-06,
			3.7346551751414047e-06,
			-2.1315026809955787e-05,
			-4.1340432272512511e-05,
			0.00014054114970203437,
			0.00030225958181306315,
			-0.00063813134304511142,
			-0.0016628637020130838,
			0.0024333732126576722,
			0.0067641854480530832,
			-0.0091642311624818458,
			-0.019761778942572639,
			0.032683574267111833,
			0.041289208750181702,
			-0.10557420870333893,
			-0.062035963962903569,
			0.43799162617183712,
			0.77428960365295618,
			0.42156620669085149,
			-0.052043163176243773,
			-0.091920010559696244,
			0.02816802897093635,
			0.023408156785839195,
			-0.010131117519849788,
			-0.004159358781386048,
			0.0021782363581090178,
			0.00035858968789573785,
			-0.00021208083980379827
		};

		double hp1_a[] = { 0.00021208083980379827,
			0.00035858968789573785,
			-0.0021782363581090178,
			-0.004159358781386048,
			0.010131117519849788,
			0.023408156785839195,
			-0.02816802897093635,
			-0.091920010559696244,
			0.052043163176243773,
			0.42156620669085149,
			-0.77428960365295618,
			0.43799162617183712,
			0.062035963962903569,
			-0.10557420870333893,
			-0.041289208750181702,
			0.032683574267111833,
			0.019761778942572639,
			-0.0091642311624818458,
			-0.0067641854480530832,
			0.0024333732126576722,
			0.0016628637020130838,
			-0.00063813134304511142,
			-0.00030225958181306315,
			0.00014054114970203437,
			4.1340432272512511e-05,
			-2.1315026809955787e-05,
			-3.7346551751414047e-06,
			2.0637618513646814e-06,
			1.6744288576823017e-07,
			-9.517657273819165e-08
		};

		double lp2_a[] = { -0.00021208083980379827,
			0.00035858968789573785,
			0.0021782363581090178,
			-0.004159358781386048,
			-0.010131117519849788,
			0.023408156785839195,
			0.02816802897093635,
			-0.091920010559696244,
			-0.052043163176243773,
			0.42156620669085149,
			0.77428960365295618,
			0.43799162617183712,
			-0.062035963962903569,
			-0.10557420870333893,
			0.041289208750181702,
			0.032683574267111833,
			-0.019761778942572639,
			-0.0091642311624818458,
			0.0067641854480530832,
			0.0024333732126576722,
			-0.0016628637020130838,
			-0.00063813134304511142,
			0.00030225958181306315,
			0.00014054114970203437,
			-4.1340432272512511e-05,
			-2.1315026809955787e-05,
			3.7346551751414047e-06,
			2.0637618513646814e-06,
			-1.6744288576823017e-07,
			-9.517657273819165e-08
		};

		double hp2_a[] = { -9.517657273819165e-08,
			1.6744288576823017e-07,
			2.0637618513646814e-06,
			-3.7346551751414047e-06,
			-2.1315026809955787e-05,
			4.1340432272512511e-05,
			0.00014054114970203437,
			-0.00030225958181306315,
			-0.00063813134304511142,
			0.0016628637020130838,
			0.0024333732126576722,
			-0.0067641854480530832,
			-0.0091642311624818458,
			0.019761778942572639,
			0.032683574267111833,
			-0.041289208750181702,
			-0.10557420870333893,
			0.062035963962903569,
			0.43799162617183712,
			-0.77428960365295618,
			0.42156620669085149,
			0.052043163176243773,
			-0.091920010559696244,
			-0.02816802897093635,
			0.023408156785839195,
			0.010131117519849788,
			-0.004159358781386048,
			-0.0021782363581090178,
			0.00035858968789573785,
			0.00021208083980379827
		};
		for (i = 0; i < 30; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 30;
	}

	else if (!strcmp(name,"sym2")){
		double lp1_a[] = { -0.12940952255092145,
			0.22414386804185735,
			0.83651630373746899,
			0.48296291314469025
		};

		double hp1_a[] = { -0.48296291314469025,
			0.83651630373746899,
			-0.22414386804185735,
			-0.12940952255092145
		};

		double lp2_a[] = { 0.48296291314469025,
			0.83651630373746899,
			0.22414386804185735,
			-0.12940952255092145
		};

		double hp2_a[] = { -0.12940952255092145,
			-0.22414386804185735,
			0.83651630373746899,
			-0.48296291314469025

		};
		for (i = 0; i < 4; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 4;
	}

	else if (!strcmp(name,"sym3")){
		double lp1_a[] = { 0.035226291882100656,
			-0.085441273882241486,
			-0.13501102001039084,
			0.45987750211933132,
			0.80689150931333875,
			0.33267055295095688

		};

		double hp1_a[] = { -0.33267055295095688,
			0.80689150931333875,
			-0.45987750211933132,
			-0.13501102001039084,
			0.085441273882241486,
			0.035226291882100656
		};

		double lp2_a[] = { 0.33267055295095688,
			0.80689150931333875,
			0.45987750211933132,
			-0.13501102001039084,
			-0.085441273882241486,
			0.035226291882100656
		};

		double hp2_a[] = { 0.035226291882100656,
			0.085441273882241486,
			-0.13501102001039084,
			-0.45987750211933132,
			0.80689150931333875,
			-0.33267055295095688
		};
		for (i = 0; i < 6; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 6;
	}

	else if (!strcmp(name,"sym4")){
		double lp1_a[] = { -0.075765714789273325,
			-0.02963552764599851,
			0.49761866763201545,
			0.80373875180591614,
			0.29785779560527736,
			-0.099219543576847216,
			-0.012603967262037833,
			0.032223100604042702
		};

		double hp1_a[] = { -0.032223100604042702,
			-0.012603967262037833,
			0.099219543576847216,
			0.29785779560527736,
			-0.80373875180591614,
			0.49761866763201545,
			0.02963552764599851,
			-0.075765714789273325
		};

		double lp2_a[] = { 0.032223100604042702,
			-0.012603967262037833,
			-0.099219543576847216,
			0.29785779560527736,
			0.80373875180591614,
			0.49761866763201545,
			-0.02963552764599851,
			-0.075765714789273325
		};

		double hp2_a[] = { -0.075765714789273325,
			0.02963552764599851,
			0.49761866763201545,
			-0.80373875180591614,
			0.29785779560527736,
			0.099219543576847216,
			-0.012603967262037833,
			-0.032223100604042702
		};
		for (i = 0; i < 8; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 8;
	}

	else if (!strcmp(name,"sym5")){
		double lp1_a[] = { 0.027333068345077982,
			0.029519490925774643,
			-0.039134249302383094,
			0.1993975339773936,
			0.72340769040242059,
			0.63397896345821192,
			0.016602105764522319,
			-0.17532808990845047,
			-0.021101834024758855,
			0.019538882735286728
		};

		double hp1_a[] = { -0.019538882735286728,
			-0.021101834024758855,
			0.17532808990845047,
			0.016602105764522319,
			-0.63397896345821192,
			0.72340769040242059,
			-0.1993975339773936,
			-0.039134249302383094,
			-0.029519490925774643,
			0.027333068345077982
		};

		double lp2_a[] = { 0.019538882735286728,
			-0.021101834024758855,
			-0.17532808990845047,
			0.016602105764522319,
			0.63397896345821192,
			0.72340769040242059,
			0.1993975339773936,
			-0.039134249302383094,
			0.029519490925774643,
			0.027333068345077982

		};

		double hp2_a[] = { 0.027333068345077982,
			-0.029519490925774643,
			-0.039134249302383094,
			-0.1993975339773936,
			0.72340769040242059,
			-0.63397896345821192,
			0.016602105764522319,
			0.17532808990845047,
			-0.021101834024758855,
			-0.019538882735286728
		};
		for (i = 0; i < 10; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 10;
	}

	else if (!strcmp(name,"sym6")){
		double lp1_a[] = { 0.015404109327027373,
			0.0034907120842174702,
			-0.11799011114819057,
			-0.048311742585632998,
			0.49105594192674662,
			0.787641141030194,
			0.3379294217276218,
			-0.072637522786462516,
			-0.021060292512300564,
			0.044724901770665779,
			0.0017677118642428036,
			-0.007800708325034148
		};

		double hp1_a[] = { 0.007800708325034148,
			0.0017677118642428036,
			-0.044724901770665779,
			-0.021060292512300564,
			0.072637522786462516,
			0.3379294217276218,
			-0.787641141030194,
			0.49105594192674662,
			0.048311742585632998,
			-0.11799011114819057,
			-0.0034907120842174702,
			0.015404109327027373
		};

		double lp2_a[] = { -0.007800708325034148,
			0.0017677118642428036,
			0.044724901770665779,
			-0.021060292512300564,
			-0.072637522786462516,
			0.3379294217276218,
			0.787641141030194,
			0.49105594192674662,
			-0.048311742585632998,
			-0.11799011114819057,
			0.0034907120842174702,
			0.015404109327027373
		};

		double hp2_a[] = { 0.015404109327027373,
			-0.0034907120842174702,
			-0.11799011114819057,
			0.048311742585632998,
			0.49105594192674662,
			-0.787641141030194,
			0.3379294217276218,
			0.072637522786462516,
			-0.021060292512300564,
			-0.044724901770665779,
			0.0017677118642428036,
			0.007800708325034148
		};
		for (i = 0; i < 12; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 12;
	}

	else if (!strcmp(name,"sym7")){
		double lp1_a[] = { 0.0026818145682578781,
			-0.0010473848886829163,
			-0.01263630340325193,
			0.03051551316596357,
			0.067892693501372697,
			-0.049552834937127255,
			0.017441255086855827,
			0.5361019170917628,
			0.76776431700316405,
			0.28862963175151463,
			-0.14004724044296152,
			-0.10780823770381774,
			0.0040102448715336634,
			0.010268176708511255
		};

		double hp1_a[] = { -0.010268176708511255,
			0.0040102448715336634,
			0.10780823770381774,
			-0.14004724044296152,
			-0.28862963175151463,
			0.76776431700316405,
			-0.5361019170917628,
			0.017441255086855827,
			0.049552834937127255,
			0.067892693501372697,
			-0.03051551316596357,
			-0.01263630340325193,
			0.0010473848886829163,
			0.0026818145682578781

		};

		double lp2_a[] = { 0.010268176708511255,
			0.0040102448715336634,
			-0.10780823770381774,
			-0.14004724044296152,
			0.28862963175151463,
			0.76776431700316405,
			0.5361019170917628,
			0.017441255086855827,
			-0.049552834937127255,
			0.067892693501372697,
			0.03051551316596357,
			-0.01263630340325193,
			-0.0010473848886829163,
			0.0026818145682578781
		};

		double hp2_a[] = { 0.0026818145682578781,
			0.0010473848886829163,
			-0.01263630340325193,
			-0.03051551316596357,
			0.067892693501372697,
			0.049552834937127255,
			0.017441255086855827,
			-0.5361019170917628,
			0.76776431700316405,
			-0.28862963175151463,
			-0.14004724044296152,
			0.10780823770381774,
			0.0040102448715336634,
			-0.010268176708511255
		};
		for (i = 0; i < 14; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 14;
	}

	else if (!strcmp(name,"sym8")){
		double lp1_a[] = { -0.0033824159510061256,
			-0.00054213233179114812,
			0.031695087811492981,
			0.0076074873249176054,
			-0.14329423835080971,
			-0.061273359067658524,
			0.48135965125837221,
			0.77718575170052351,
			0.3644418948353314,
			-0.051945838107709037,
			-0.027219029917056003,
			0.049137179673607506,
			0.0038087520138906151,
			-0.014952258337048231,
			-0.0003029205147213668,
			0.0018899503327594609
		};

		double hp1_a[] = { -0.0018899503327594609,
			-0.0003029205147213668,
			0.014952258337048231,
			0.0038087520138906151,
			-0.049137179673607506,
			-0.027219029917056003,
			0.051945838107709037,
			0.3644418948353314,
			-0.77718575170052351,
			0.48135965125837221,
			0.061273359067658524,
			-0.14329423835080971,
			-0.0076074873249176054,
			0.031695087811492981,
			0.00054213233179114812,
			-0.0033824159510061256
		};

		double lp2_a[] = { 0.0018899503327594609,
			-0.0003029205147213668,
			-0.014952258337048231,
			0.0038087520138906151,
			0.049137179673607506,
			-0.027219029917056003,
			-0.051945838107709037,
			0.3644418948353314,
			0.77718575170052351,
			0.48135965125837221,
			-0.061273359067658524,
			-0.14329423835080971,
			0.0076074873249176054,
			0.031695087811492981,
			-0.00054213233179114812,
			-0.0033824159510061256
		};

		double hp2_a[] = { -0.0033824159510061256,
			0.00054213233179114812,
			0.031695087811492981,
			-0.0076074873249176054,
			-0.14329423835080971,
			0.061273359067658524,
			0.48135965125837221,
			-0.77718575170052351,
			0.3644418948353314,
			0.051945838107709037,
			-0.027219029917056003,
			-0.049137179673607506,
			0.0038087520138906151,
			0.014952258337048231,
			-0.0003029205147213668,
			-0.0018899503327594609
		};
		for (i = 0; i < 16; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 16;
	}

	else if (!strcmp(name,"sym9")){
		double lp1_a[] = { 0.0014009155259146807,
			0.00061978088898558676,
			-0.013271967781817119,
			-0.01152821020767923,
			0.03022487885827568,
			0.00058346274612580684,
			-0.054568958430834071,
			0.238760914607303,
			0.717897082764412,
			0.61733844914093583,
			0.035272488035271894,
			-0.19155083129728512,
			-0.018233770779395985,
			0.06207778930288603,
			0.0088592674934004842,
			-0.010264064027633142,
			-0.00047315449868008311,
			0.0010694900329086053
		};

		double hp1_a[] = { -0.0010694900329086053,
			-0.00047315449868008311,
			0.010264064027633142,
			0.0088592674934004842,
			-0.06207778930288603,
			-0.018233770779395985,
			0.19155083129728512,
			0.035272488035271894,
			-0.61733844914093583,
			0.717897082764412,
			-0.238760914607303,
			-0.054568958430834071,
			-0.00058346274612580684,
			0.03022487885827568,
			0.01152821020767923,
			-0.013271967781817119,
			-0.00061978088898558676,
			0.0014009155259146807
		};

		double lp2_a[] = { 0.0010694900329086053,
			-0.00047315449868008311,
			-0.010264064027633142,
			0.0088592674934004842,
			0.06207778930288603,
			-0.018233770779395985,
			-0.19155083129728512,
			0.035272488035271894,
			0.61733844914093583,
			0.717897082764412,
			0.238760914607303,
			-0.054568958430834071,
			0.00058346274612580684,
			0.03022487885827568,
			-0.01152821020767923,
			-0.013271967781817119,
			0.00061978088898558676,
			0.0014009155259146807
		};

		double hp2_a[] = { 0.0014009155259146807,
			-0.00061978088898558676,
			-0.013271967781817119,
			0.01152821020767923,
			0.03022487885827568,
			-0.00058346274612580684,
			-0.054568958430834071,
			-0.238760914607303,
			0.717897082764412,
			-0.61733844914093583,
			0.035272488035271894,
			0.19155083129728512,
			-0.018233770779395985,
			-0.06207778930288603,
			0.0088592674934004842,
			0.010264064027633142,
			-0.00047315449868008311,
			-0.0010694900329086053
		};
		for (i = 0; i < 18; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 18;
	}

	else if (!strcmp(name,"sym10")){
		double lp1_a[] = { 0.00077015980911449011,
			9.5632670722894754e-05,
			-0.0086412992770224222,
			-0.0014653825813050513,
			0.045927239231092203,
			0.011609893903711381,
			-0.15949427888491757,
			-0.070880535783243853,
			0.47169066693843925,
			0.7695100370211071,
			0.38382676106708546,
			-0.035536740473817552,
			-0.0319900568824278,
			0.049994972077376687,
			0.0057649120335819086,
			-0.02035493981231129,
			-0.00080435893201654491,
			0.0045931735853118284,
			5.7036083618494284e-05,
			-0.00045932942100465878
		};

		double hp1_a[] = { 0.00045932942100465878,
			5.7036083618494284e-05,
			-0.0045931735853118284,
			-0.00080435893201654491,
			0.02035493981231129,
			0.0057649120335819086,
			-0.049994972077376687,
			-0.0319900568824278,
			0.035536740473817552,
			0.38382676106708546,
			-0.7695100370211071,
			0.47169066693843925,
			0.070880535783243853,
			-0.15949427888491757,
			-0.011609893903711381,
			0.045927239231092203,
			0.0014653825813050513,
			-0.0086412992770224222,
			-9.5632670722894754e-05,
			0.00077015980911449011
		};

		double lp2_a[] = { -0.00045932942100465878,
			5.7036083618494284e-05,
			0.0045931735853118284,
			-0.00080435893201654491,
			-0.02035493981231129,
			0.0057649120335819086,
			0.049994972077376687,
			-0.0319900568824278,
			-0.035536740473817552,
			0.38382676106708546,
			0.7695100370211071,
			0.47169066693843925,
			-0.070880535783243853,
			-0.15949427888491757,
			0.011609893903711381,
			0.045927239231092203,
			-0.0014653825813050513,
			-0.0086412992770224222,
			9.5632670722894754e-05,
			0.00077015980911449011
		};

		double hp2_a[] = { 0.00077015980911449011,
			-9.5632670722894754e-05,
			-0.0086412992770224222,
			0.0014653825813050513,
			0.045927239231092203,
			-0.011609893903711381,
			-0.15949427888491757,
			0.070880535783243853,
			0.47169066693843925,
			-0.7695100370211071,
			0.38382676106708546,
			0.035536740473817552,
			-0.0319900568824278,
			-0.049994972077376687,
			0.0057649120335819086,
			0.02035493981231129,
			-0.00080435893201654491,
			-0.0045931735853118284,
			5.7036083618494284e-05,
			0.00045932942100465878
		};
		for (i = 0; i < 20; ++i) {
			lp1[i] = lp1_a[i];
			hp1[i] = hp1_a[i];
			lp2[i] = lp2_a[i];
			hp2[i] = hp2_a[i];
		}
		return 20;
	}


	else {
		printf("\n Filter Not in Database \n");
		return -1;
	}

	return 0;
}